package com.rentong.cust.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.rentong.common.annotation.Excel;
import com.rentong.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 结算对象 cust_jiesuan
 *
 * @author ruoyi
 * @date 2025-01-02
 */
@Getter
@Setter
public class CustJiesuanVo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 结算单的id
     */
    private Long jiesuanId;

    /**
     * 用户的id（谁生成就是谁的id）
     */
    @Excel(name = "用户的id", readConverterExp = "谁=生成就是谁的id")
    private Long sysId;

    /**
     * 工程名称
     */
    @Excel(name = "工程名称")
    private String projectName;

    /**
     * 小计
     */
    @Excel(name = "小计")
    private Long xiaoji;

    /**
     * 专用增值税金
     */
    @Excel(name = "专用增值税金")
    private Long shuijin;

    /**
     * 合计
     */
    @Excel(name = "合计")
    private Long heji;

    /**
     * 1：草稿（导入就是草稿）；2：已上传；3：已生成；4：已退回（项目经理退回之后，预决算员点击重新提交的按钮时，直接把这个记录删除，再重新生成一条）
     */
    @Excel(name = "1：草稿", readConverterExp = "导=入就是草稿")
    private Integer jiesuanState;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date addTime;

    private List<CustJiesuanList> custJiesuanLists;

    public void setJiesuanId(Long jiesuanId) {
        this.jiesuanId = jiesuanId;
    }

    public Long getJiesuanId() {
        return jiesuanId;
    }

    public void setSysId(Long sysId) {
        this.sysId = sysId;
    }

    public Long getSysId() {
        return sysId;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setXiaoji(Long xiaoji) {
        this.xiaoji = xiaoji;
    }

    public Long getXiaoji() {
        return xiaoji;
    }

    public void setShuijin(Long shuijin) {
        this.shuijin = shuijin;
    }

    public Long getShuijin() {
        return shuijin;
    }

    public void setHeji(Long heji) {
        this.heji = heji;
    }

    public Long getHeji() {
        return heji;
    }

    public void setJiesuanState(Integer jiesuanState) {
        this.jiesuanState = jiesuanState;
    }

    public Integer getJiesuanState() {
        return jiesuanState;
    }

    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    public Date getAddTime() {
        return addTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("jiesuanId", getJiesuanId())
                .append("sysId", getSysId())
                .append("projectName", getProjectName())
                .append("xiaoji", getXiaoji())
                .append("shuijin", getShuijin())
                .append("heji", getHeji())
                .append("jiesuanState", getJiesuanState())
                .append("addTime", getAddTime())
                .toString();
    }
}
